package com.ocm.tourism.core.dao;

import java.util.List;

import com.ocm.tourism.core.domain.BusinessType;
import com.ocm.tourism.core.domain.CulinaryCulture;
import com.ocm.tourism.core.domain.Distance;
import com.ocm.tourism.core.domain.FoodStall;
import com.ocm.tourism.core.model.FieldCriteria;

public interface CulinaryCultureDao extends GenericDao<CulinaryCulture> {

   List<CulinaryCulture> findAll(List<Long> culinaryCultureIds);

   long count(BusinessType businessType);

   long count(BusinessType businessType, long participantId);

   List<CulinaryCulture> find(int firstResult, int maxResults, BusinessType businessType);
   
   List<CulinaryCulture> find(int firstResult, int maxResults, BusinessType businessType, long participantId);

   List<CulinaryCulture> find(int firstResult, int maxResults, BusinessType... businessTypes);

   List<Distance> findDistances(long id);

   FoodStall findFoodStall(long id);
   
   List<FoodStall> findFoodStalls(int firstResult, int maxResults);   
   
   List<FoodStall> findFoodStalls(int firstResult, int maxResults, long participantId);

   List<CulinaryCulture> findCulinaryCultures(List<FieldCriteria> criterias);
}
